Statistical Design with Importance Sampling Reuse

ABSTRACT

A mechanism is provided for reusing importance sampling for efficient cell failure rate estimation of process variations and other design considerations. First, the mechanism performs a search across circuit parameters to determine failures with respect to a set of performance variables. For a single failure region, the initial search may be a uniform sampling of the parameter space. Mixture importance sampling (MIS) efficiently may estimate the single failure region. The mechanism then finds a center of gravity for each metric and finds importance samples. Then, for each new origin corresponding to a process variation or other design consideration, the mechanism finds a suitable projection and recomputes new importance sampling (IS) ratios.

BACKGROUND

The present application relates generally to an improved data processingapparatus and method and more specifically to mechanisms for simulationbased characterization of circuits using statistical design withimportance sampling reuse.

As memory array architectures are pushed to their practical limits byincreasing requirements for density and speed, accurately estimating thecell failure rate of a design becomes increasingly critical. Since afinite number of redundant rows and/or columns is available to replacethose containing defective cells, a number of failed cells above thislevel of redundancy will yield a defective device. The number ofdefective devices, or device yield is then directly related to the cellfailure rate. The larger arrays being fabricated today have increasinglystringent failure rate control requirements. For example, in order toachieve a yield of 90% in a one-million cell array without redundancy, afailure rate below five standard deviations (5σ) must be held.

Traditional techniques such as Monte-Carlo analysis produce accurateresults at a cost of a large number of iterations, due to the randomsampling of the entire probability space of the independent variablesthat are treated in the analysis. As the cell failure rate decreases,the number of samples and iterations required for accurate analysisbecomes increasingly large, because of the relatively sparsedistribution of samples in the distribution tail(s) that correspond tofailed cells. The effect of circuit changes on cell readability andwritability, as well as minimum read and write cycle times and margins,are difficult to estimate at very low failure rate levels. Such lowfailure rates cause further complications for adjusting designs toachieve the best result.

Techniques other than Monte-Carlo analysis have been implemented forestimating cell failure rates, each with related drawbacks. Sensitivityanalysis is a well-known technique in which the gradients of the variousindependent variables are used to determine the bounds of thenon-failure confidence region. However, accurate estimates of thefailure rate are not typically produced by sensitivity analysis, assensitivity analysis by its very nature cannot determine the exactoverlapping impact of all independent variables on the cell failure rateat once. Another technique that can accurately estimate the failure rateis the grid analysis approach, in which the grid size can be madearbitrarily small. However, the number of simulations increasesexponentially with the number of independent variables and typically alarge amount of custom coded program control (scripting) must beemployed to direct the analysis.

SUMMARY

In one illustrative embodiment, a method, in a data processing system,is provided for determining failure rate of a device using importancesampling reuse. The method comprises performing, by the data processingsystem, a uniform sampling over a random sample space for a metric forthe device with respect to an origin to form a set of samples. The setof samples comprises one or more failing samples. The method furthercomprises determining, by the data processing system, a center ofgravity of the one or more failing samples with respect to the originand determining, by the data processing system, importance samples basedon the center of gravity of the one or more failing samples. The methodfurther comprises selecting a new origin, recomputing, by the dataprocessing system, new importance sampling weight ratios for the neworigin, and determining, by the data processing system, a failure ratefor the device based on the new importance sampling weight ratios forthe new origin.

In other illustrative embodiments, a computer program product comprisinga computer usable or readable medium having a computer readable programis provided. The computer readable program, when executed on a computingdevice, causes the computing device to perform various ones, andcombinations of, the operations outlined above with regard to the methodillustrative embodiment.

In yet another illustrative embodiment, a system/apparatus is provided.The system/apparatus may comprise one or more processors and a memorycoupled to the one or more processors. The memory may compriseinstructions which, when executed by the one or more processors, causethe one or more processors to perform various ones, and combinations of,the operations outlined above with regard to the method illustrativeembodiment.

These and other features and advantages of the present invention will bedescribed in, or will become apparent to those of ordinary skill in theart in view of, the following detailed description of the exampleembodiments of the present invention.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The invention, as well as a preferred mode of use and further objectivesand advantages thereof, will best be understood by reference to thefollowing detailed description of illustrative embodiments when read inconjunction with the accompanying drawings, wherein:

FIG. 1 is a schematic diagram of a memory cell within an array of memorycells that can be modeled in accordance with an illustrative embodiment;

FIGS. 2A-2B and 3A-3B are graphs illustrating techniques employed inillustrative embodiments;

FIG. 4 is a flowchart illustrating operation of a centroid-locatingtechnique in accordance with an illustrative embodiment;

FIG. 5 is a flowchart illustrating operation of a random directionvector technique in accordance with an illustrative embodiment;

FIG. 6 is a graph depicting global variability space in accordance withan illustrative embodiment;

FIGS. 7A and 7B are graphs illustrating global and local variation intwo dimensions in accordance with an illustrative embodiment;

FIG. 8 illustrates how reusing the old set of samples for a new originmay underestimate fails in accordance with an illustrative embodiment;

FIGS. 9A and 9B illustrate alternative approaches to determining failsfor a new origin in accordance with illustrative embodiments;

FIG. 10 illustrates an example application to importance sampling inaccordance with an example embodiment;

FIG. 11 illustrates an example application for importance samples formultiple metrics in accordance with an example embodiment;

FIG. 12 is a graph illustrating importance sampling reuse for a set ofprocess variations in accordance with an illustrative embodiment;

FIG. 13 illustrates an example application of importance sampling reusefor manufacturing variability in accordance with an example embodiment;

FIG. 14 is a graph illustrating the manufacturing variability space inaccordance with an example embodiment;

FIG. 15 is a graph illustrating results for an example static randomaccess memory in accordance with an illustrative embodiment;

FIG. 16 is a flowchart illustrating operation of a mechanism forstatistical design with importance sampling reuse in accordance with anillustrative embodiment; and

FIG. 17 is a block diagram of an example data processing system in whichaspects of the illustrative embodiments may be implemented.

DETAILED DESCRIPTION

The illustrative embodiments provide a mechanism for reusing importancesampling for efficient cell failure rate estimation of processvariations and other design considerations. First, the mechanismperforms a search across circuit parameters to determine failures withrespect to a set of performance variables. For a single failure region,the initial search may be a uniform sampling of the parameter space.Mixture importance sampling (MIS) efficiently may estimate the singlefailure region. The mechanism then finds a center of gravity for eachmetric/region and finds importance samples. Then, for each new origincorresponding to a process variation or other design consideration, themechanism finds a suitable projection and recomputes new importancesampling (IS) ratios.

Importance sampling is a general technique for estimating properties ofa particular distribution, while only having samples generated from adifferent distribution rather than the distribution of interest.Depending on the application, the term may refer to the process ofsampling from this alternative distribution, the process of inference,or both. The idea behind importance sampling is that certain values ofthe input random variables in a simulation have more impact on themetric being estimated than others. If these “important” values areemphasized by sampling more frequently, then the estimator variance canbe reduced. Hence, the basic methodology in importance sampling is tochoose a distribution which encourages the important values. This use ofbiased distributions will result in a biased estimator if it is applieddirectly in the simulation. However, the simulation outputs are weightedto correct for the use of the biased distribution, and this ensures thatthe new importance sampling estimator is unbiased.

The fundamental issue in implementing importance sampling simulation isthe choice of the biased distribution which encourages the importantregions of the input variables. Choosing or designing a good biaseddistribution is the art of importance sampling. The rewards for a gooddistribution can be huge run-time savings; the penalty for a baddistribution can be longer run times than for a general Monte-Carlosimulation without importance sampling.

More particularly, the mechanism of the illustrative embodiments mayfirst perform uniform sampling until a predetermined number of failingsamples are encountered. Then, the mechanism may perform importancesampling simulation to determine a biased (distorted) distribution forperforming a second sampling. The mechanism may then weight the resultsto determine failure rate or yield information. Finally, in accordancewith an illustrative embodiment, the mechanism may reuse the samplesfrom the biased distribution with respect to a new origin to determinethe yield for the new origin. In an alternative embodiment, themechanism may reuse the samples from the uniform sampling to determine anew biased distribution for the new origin and then weight the resultsto determine the yield for the new origin.

Thus, the illustrative embodiments concern techniques for overcoming thelimitations of traditional Monte-Carlo analysis for circuits where thefailure rate of the circuit being analyzed is very low. For instance,with respect to circuits having large arrays of identical cells, thecells are generally the determining factor in the failure rate, but onlyas a totality of the cells. Because millions of cells may beincorporated in a memory array, even very low failure rates contributesignificantly to the failure rate of the individual memory devices orother devices that incorporate memory such arrays.

It is necessary to analyze the cell design and process variations at theextreme end of the distribution of actual cell parameters in order togain meaningful information that can accurately predict device yieldsand permit improvement of the cells in order to improve device yields.The techniques used in the prior art either require exhaustivecomputation and storage, or do not perform well once there are more thana small number of variable design and process parameters, such as deviceareas or lengths and widths, doping densities, threshold voltages andother measures of design and process parameters. The illustrativeembodiments provide a mechanism for using mixture importance sampling(MIS), which is a known technique, in a manner that effectively modelsmemory cells.

MIS uses a mixture of two or more distributions for generating samplevalues, with at least one of the distributions biased to generatesamples in a region of interest. In the illustrative embodiments thesample values are input vectors of design- and process-dependentelectrical circuit parameters that determine the performance of thememory cell. The performance is measured in terms of operationalperformance values such as read and write delay time, writability (i.e.,can the cell value be changed during a write) and read stability (i.e.,will the cell hold its value during reads), as well as the marginsassociated with the read and write times, under the operational andcircuit parametric conditions simulated. Because a priori knowledgeabout what regions in N-space might be of interest is not generallyeasily obtained (where N is the number of variable parameters), theillustrative embodiments provide a front-end mechanism to the MISanalysis that identifies and quantifies a particular region or regionsof interest for further study via the MIS technique. The result is thatthe computational overhead and storage associated with the analysis isgreatly reduced, while yielding the desired accuracy with respect to thefailure mechanism(s) being studied.

In order to locate a region of interest that provides information abouta particular failure mechanism, a priori information about the failuremechanisms to expect is useful. If it is known that a single dominantfailure mode is present, such as in many static random access memory(SRAM) cell designs, then the identification of the region of interestis simplified. If it is known that multiple regions of interest havingstatistically significant impact will be present, then the analysis canproceed until all regions of interest are identified. If it is not knownhow many failure mechanisms will be of interest and/or significantwithin the probability space to be explored, then techniques must beemployed that can handle either the single-region or multiple regioncases.

In the multiple region case, there are also two alternatives forapplying the MIS technique. Either the regions of interest can bestudied independently, or the sampling function for the MIS techniquecan include multiple sampling centers concentrated on the approximatecenters of the multiple regions. The latter technique can be used toavoid error in failure rate prediction due to overlap of the regions ofinterest in one or more dimensions.

With reference now to the figures, and in particular with reference toFIG. 1, an example memory cell that can be modeled by a method inaccordance with an illustrative embodiment is shown in an array thatincludes other cells 5. Transistors P10, N10, P11, and N11 form across-coupled static latch that provides the storage of a value in thecell. Transistors N12 and N13 provide for access to the value inresponse to a wordline select signal WL. Bitlines BLT (true bitline) andBLC (complement bitline) couple all cells in a column, so that when arow is selected by signal WL, only one row cell from each column isexposed to the memory logic. For a write operation, bitlines BLC and BLTare charged to voltages corresponding to the desired state of the memorycell and WL is activated (pulsed), setting the state of the latch formedby transistors P10, N10, P11 and N11. For a read operation, the bitlinesBLC and BLT are previously charged to opposite state predeterminedvoltages (generally V_(dd) and ground), and to commence the read, WL ispulsed and a sense amplifier coupled to bitlines BLC and BLT determinesthe stored state by differential comparison of bitlines BLC and BLT.Depending on the relative strengths of the transistors P10-11 andN10-13, the cell will exhibit varying ability to perform topredetermined read/write cycle times and may be unstable in that thecell value does not remain constant after a write or when being read. Asoperating frequencies are increased and device sizes correspondinglydecreased, the variations take on a statistically significantly greaterrange causing failure of an increasing number of devices in a lot. Theillustrative embodiments are directed toward an efficient method forstatistically analyzing the design of memory cells so that the yield ofmemory cells can be predicted accurately and further so that yields maybe improved by selecting optimized nominal values for the deviceparameters and other environmental parameters such as operatingvoltages.

While the illustrated cell is an example of a cell of order 4 that maybe analyzed and improved by a method according to an embodiment of theinvention, it should be understood that the techniques illustratedherein may be applied to memory cells of any order and design and tocircuits other than memory circuits, as well. (Order as used hereinrefers to the number of devices that implement the storage element ofthe cell exclusive of the bitline access transistors.)

Referring now to FIG. 2A, a graph illustrating the purpose andtechniques of the illustrative embodiments is shown. A distribution 10of operational performance values, such as the above-mentioned delaytimes and writability/read stability measures, generally following aGaussian shape extends past 5 standard deviations (5σ) on either side ofa mean value. The input parameter values are generated by a similarGaussian distribution of samples as generated around a nominal vector ofcell parameter values by a Monte-Carlo algorithm.

Failure zone 12A in the graph is located past the 5σ point and is shownas a shaded area. The yield of the cell modeled by distribution 10 canbe predicted from the graph, and thus the yield of the overall device.However, the accuracy near failure zone 12A is limited due to therelatively sparse distribution of samples in the tails of distribution10. The illustrative embodiments use MIS to concentrate sampling withinone or more failure zones, so that more accurate estimates of yield areproduced.

Referring now to FIG. 2B, a graph showing the operation of theillustrative embodiments is shown. Once a region of interest isidentified in the device and process-dependent parameter space, amixture 10C of distributions 10, 10A, and 10B is employed to improve thedensity of samples in zone 12A, while ensuring that gaps are not left inthe distribution that might otherwise miss other failures. The mixturesampling function distribution 10C can be expressed by:

g _(λ)(x)=λ₁ p(x)+λ₂ U(x)+(1−λ₁−λ₂)p(x−μ_(s)),

where λ₁ and λ₂ are coefficients used to control the mixture, which canbe determined by the position of a new sampling function center μ_(s) 14that is used to improve the concentration of samples around μ_(s). Notethat μ_(s) is not the center of mixture sampling function distribution10C, but rather the center of gaussian distribution 10A forming part ofsampling function distribution 10C. Uniform distribution U(x) 10B isalso included in the mixture, which helps in ensuring that some samplesare present for all values within the interval over which uniformdistribution 10B extends. The choice of coefficients, in combinationwith the inclusion of the uniform distribution is made so that thenumber of samples in the region of interest is increased, but no “deadspots” are present in the analysis.

The result of the mixture sampling function is to generate a relativelylarger number of samples over zone 12A (as compared to the distributionof FIG. 2A), yielding a much more precise estimate of the impact of zone12A on. Results show a more than 10× improvement (or greater, inproportion to the distance of zone 12A from the nominal mean μ) inconvergence time for estimates of the edges of failure zone 12A, whichresults in a corresponding improvement in convergence of the calculationof overall device yield.

While generally the statistical analysis detailed above will beconducted independently over the operational performance variables beingstudied, it is possible to conduct a combined pass/fail analysis overthe parameter space in which no information about the particularoperational performance variables associated with each failed point isretained, but the overall desirability of a particular design can bedirectly observed with respect to process variations. MIS analysis canthen be conducted with one or more mean-shifting distributions includedto precisely predict the yield.

Referring now to FIG. 3A, a first technique for locating samplingfunction center μ_(s) 14, is depicted. Since memory cell operationalperformance variable failure regions generally will extend to the boundsof the analysis range (with respect to the parameter deviation) from thepoint at which the failures occur, failure regions can be ascribed tofailure region boundaries beyond which the probability of failure onlyincreases. The illustration is two-dimensional but in actual practice, alarger number of dimensions are actually being evaluated simultaneously.A number of sample points are generated by uniformly sampling thevariable memory cell parameter space, corresponding to the dots shown inthe depicted example. Quasi-random sampling techniques can be used toimprove the spread of the samples across the parameter space. In thedepicted example, hollow dots depict non-failing points and solid dotsdepict failing points. After a threshold number of failures isaccumulated, which may be qualified by observing their proximity in theparameter space if multiple failure regions might be present (in orderto group the failures), a particular failure region of interest 20B isidentified and the vector centroid 14 of that region computed and usedas new sampling function center μ_(s) 14 for subsequent MIS analysis.The vector centroid is computed from the vector distances of the pointsas the vector of average distance in each parameter space. There may bemultiple failure regions for some applications of the techniques of theillustrative embodiments including other failure regions such as 20A,and those regions can be ignored if not of interest, or may be furtherevaluated with independent MIS analysis around their centers.

The above-described technique is especially applicable to the study ofmemory cell designs that have a single dominant failure region ofinterest. However, if it is not known in advance that there will be asingle dominant region, the positions of the failure samples inparameter vector space can be observed and the samples grouped into oneor more groups as mentioned above. If a group is much more distant fromthe nominal parameter vector, then that group may be discarded as beingdue to a relatively unimportant failure mechanism. The technique of theillustrative embodiments can be used to obtain better information aboutmultiple failure mechanisms by the above grouping technique ordiscarding of groups.

A threshold number of samples can then be collected for each group to bestudied and either an independent set of MIS analyses can be conductedfor each group, or the above MIS sampling distribution function can bemodified to follow:

g _(λ)(x)=λ₁ p(x)+λ₂ U(x)+λ₃ p(x−μ _(s1))+(1−λ₁−λ₂−λ₃)p(x−μ_(s2)),

where λ₁, λ₂ and λ₃ are coefficients used to control the mixture and newsampling function centers μ_(s1), μ_(s2) are used to improve theconcentration of samples around two regions of interest. If more thantwo regions of interest are present, the above sampling function can beexpanded to include other mean shifting values and their associatedsampling function kernels in the above sampling function.

Referring now to FIG. 3B, another technique adapted for treatingcircuits having multiple dominant failure regions is depicted, e.g.,circuits for which multiple failure mechanisms have fairly equivalentstatistical significance. The technique may also be used for singlefailure region analysis, as well. A vector of nominal memory cellparameter values 16 is used as a starting point for random generation ofa sufficient initial number of vector directions 18 along which cellfailure analysis proceeds until failure points are detected. Asufficient number of vectors is generated so that failure regions willnot be missed by the analysis. Gaussian latin hypercube sampling can beused to ensure uniform placement of the vectors in all directions.

The analysis then proceeds away from nominal vector 16 as illustrated.The generally monotonic behavior of the circuits as the parameters varyin one direction away from the nominal ensures that failing points willonly be encountered at and beyond the boundaries of the failure regions20A, 20B. The new sampling function center μ_(s) 14 for subsequent MISanalysis is determined either by the mean vector 14B corresponding tothe group of boundary points 22, or an estimated vector 14A isextrapolated within failure region of interest 20B from the location ofthe boundary points. After a first iteration, if the boundaries offailure regions 20A, 20B are not sufficiently defined, a local set ofrandom vectors is generated to enhance the set of samples around theboundaries. After boundaries 20A, 20B are sufficiently defined μ_(s) 14is chosen as described above. As in the center of gravity technique,regions of interest that are more distant from the nominal vector can bediscarded as relatively unimportant failure mechanisms. The techniqueillustrated in FIG. 3B also provides better information about multiplefailure mechanisms by locating the boundaries of the regions ofinterest. If the boundaries are not well defined after the aboveanalysis has been attempted, then the entire process can be repeatedwith a larger set of initial random vectors.

FIG. 4 is a flowchart illustrating operation of a centroid-locatingtechnique in accordance with an illustrative embodiment. The flowchartof FIG. 4 corresponds to the centroid-locating technique described abovewith reference to FIG. 3A. First, a statistical analysis across rangesof memory circuit parameters is performed for multiple performancevariables (block 30) and once a threshold number of failing samples isaccumulated (possibly qualified as being in a single failure region ifrequired) (block 32) the centroid of the parameters corresponding to thegroup of failures is determined (block 34). Finally, a new distributionof input parameter vectors is selected in conformity with the determinedcentroid and the nominal vector (block 36) and an MIS analysis isperformed (block 38) using the new mixture distribution to gain moreaccurate results in the region of the failures and a faster convergenceof the overall yield computation, and operation ends.

FIG. 5 is a flowchart illustrating operation of a random vectortechnique in accordance with an illustrative embodiment. The flowchartof FIG. 5 corresponds to the random vector technique described abovewith reference to FIG. 3B. First, random vector directions are generatedaround the nominal value of the memory circuit parameters (block 50).The memory cell is simulated along the vectors until a failure isdetected, corresponding to a failure region boundary (block 52). Then, amean point is computed from multiple failure region boundary points or apoint is estimated within the failure region from the boundary points(block 54). An MIS distribution function is then selected (block 56) asa mixture of a distribution around the nominal parameter values and themean point computed in block 54 (along with the uniform distribution),and an MIS analysis is performed (block 58) using the new mixturedistribution to gain more accurate results in the region of the failuresand a faster convergence of the overall yield computation, and operationends.

Variability is a key problem in circuit design. Statistical analysis andsimulations are needed to analyze design yield. For this, importancesampling was developed as a fast statistical analysis tool versusregular Monte-Carlo analysis. Often, circuit designers face situationswhere they revisit a circuit design with multiple design considerations.For example, design centering, optimization, and manufacturingvariability require a lot of what-if statistical analysis studies.

For the design centering and manufacturing variability space, oftenglobal variation space is a subset of the random sample space. Inaccordance with an illustrative embodiment, a mechanism is provided tominimize function evaluations (simulations) and to reuse importancesamples. For different global variation corners, the mechanism may inferyield information from samples obtained around the old origin.

FIG. 6 is a graph depicting global variability space in accordance withan illustrative embodiment. The disk represents the global variabilityspace defined by the following:

x=−z,

where x, y, and z are random variables. The mechanism of theillustrative embodiments may find importance samples for origin 602 andmay recomputed new importance sample ratios for new origins 604, whichare “corners” on the boundary of the global variability space.

FIGS. 7A and 7B are graphs illustrating global and local variation intwo dimensions in accordance with an illustrative embodiment. Moreparticularly, FIG. 7A illustrates failure direction with respect to theorigin by regular sampling. FIG. 7B illustrates the operation of usingthe old set of samples with respect to a new origin. As seen in FIG. 7B,simply reusing the old set of samples may result in underestimatingfails.

FIG. 8 illustrates how reusing the old set of samples for a new originmay underestimate fails in accordance with an illustrative embodiment.The distance of the new origin to the failing samples (e.g., the centerof gravity (COG)) can underestimate the fails, because the distancealong the COG direction 802 is greater than the distance 804 of the neworigin to the failing samples along the same direction of the origin tothe COG.

FIGS. 9A and 9B illustrate alternative approaches to determining failsfor a new origin in accordance with illustrative embodiments. As shownin FIG. 9A, one approach is to project the new origin onto the line fromthe origin to the COG. This approach maintains failing samples close tothe projected new origin. As shown in FIG. 9B, another approach is tomove the population of samples, along the orthogonal direction to theline from the origin to the COG. This approach approximates the dominantfail direction in the proximity of the old origin via the COG of fails.The approach of FIG. 9B provides a fixed pattern of fails withoutenforcing or modeling using a fixed boundary. This approach isparticularly reasonable when the new origin is not too far from theorigin.

FIG. 10 illustrates an example application to importance sampling inaccordance with an example embodiment. In the depicted example, area1002 shows the real importance samples with respect to the origin. Area1004 shows the shifted importance samples with respect to the neworigin. FIG. 11 illustrates an example application for importancesamples for multiple metrics in accordance with an example embodiment.In the example shown in FIG. 11, each metric is identified by a dominantcenter of gravity of fails.

In accordance with the illustrative embodiments, the mechanismre-evaluates importance sampling with respect to the new projectedorigin. The importance sampling weight function of x with respect to theorigin is defined as follows:

${w(x)} = {{{\Pi exp}\left( {{- 0.5}*\left( \frac{x - 0}{\sigma} \right)^{2}} \right)}/{\exp \left( {{- 0.5}*\left( \frac{x - x_{COG}}{\sigma} \right)^{2}} \right)}}$

where x is process variation variable of the device, x_(COG) is thecenter of gravity of the one or more failing samples, and σ is thestandard deviation of x. The importance sampling weight function of xwith respect to the new projected origin (np) is defined as follows:

${w(x)} = {{{\Pi exp}\left( {{- 0.5}*\left( \frac{x - x_{np}}{\sigma} \right)^{2}} \right)}/{\exp \left( {{- 0.5}*\left( \frac{x - x_{COG}}{\sigma} \right)^{2}} \right)}}$

where x is process variation variable of the device, x_(np) is a newpoint of the projected origin for the process variation variable x,x_(COG) is the center of gravity of the one or more failing samples, andσ is the standard deviation of x; the equations assume that the processvariation variables are Gaussian. In case of non-gaussian variables,transformation are used to normalize the process variations viacumulative distribution functions mapping tables, or more complex weightfunctions can be adopted. Most importantly if the probability densityfunction is f(x), then the shifted weights are proportional tof(x−x_(np))/f(x−x_(cog)). The equations above also assume that thestandard deviation, σ, of the process variation variables remain thesame. In case there is a change in σ associated with origin of processvariation change, then the weights are modified accordingly.

${w(x)} = {\Pi \frac{\sigma}{\sigma_{np}}{{\exp \left( {{- 0.5}\left( \frac{x - x_{np}}{\sigma_{np}} \right)^{2}} \right)}/{\exp \left( {{- 0.5}\left( \frac{x - x_{COG}}{\sigma} \right)^{2}} \right)}}}$

where x is process variation variable of the device, x_(np) is a newpoint of the projected origin for the process variation variable x,x_(COG) is the center of gravity of the one or more failing samples, σis the standard deviation of x, and σ_(np) is the standard deviationassociated with the new point of origin.

FIG. 12 is a graph illustrating importance sampling reuse for a set ofprocess variations in accordance with an illustrative embodiment. In theexample shown in FIG. 12, there are three variables, in this instancefor a pass gate (pg), a pull-up transistor (pu), and a pull-downtransistor (pd). The mechanism of the illustrative embodiments mayperform MIS analysis at an origin and predict yield at different corners1202 with no additional simulations.

Thus, the mechanism of the illustrative embodiments may be applied reuseimportance sampling to determine yield given manufacturing variability.The mechanism may estimate yield at various corners. Designers currentlystudy multiple corner combinations using conventional methods. Forexample, designers may maintain a table of a hundred or morev_(dd)/v_(cc) points for which yield is being computed. The mechanism ofthe illustrative embodiments allow designers to more easily andaccurately estimate yield gradients and sensitivity to manufacturingvariability space and to even estimate weighted equivalent yield withinthe manufacturing variability space at each of these points with minimumcomputation/simulation effort.

FIG. 13 illustrates an example application of importance sampling reusefor manufacturing variability in accordance with an example embodiment.The mechanism may perform importance sampling reuse for various corners1302 within the manufacturing variability space. The standard deviationwithin the manufacturing variability space (σ_(mv)) may be much lessthan the standard deviation for random dopant fluctuation (σ_(RDF)). Thesmall standard deviation helps in terms of better accuracy. The corners1302 may be defined by v_(t) changes in two-dimensional orthree-dimensional space. Importance sampling may be performed insix-dimensional space.

FIG. 14 is a graph illustrating the manufacturing variability space inaccordance with an example embodiment. The mechanism of the illustrativeembodiment may estimate yield for each corner with no additionalsimulations. The mechanism may reuse samples from “nominal” corneranalysis rather than one origin. The example shown in FIG. 14 assumesthree-dimensional importance sampling and two-dimensional globalvariability space.

The mechanism of the illustrative embodiments may be applied to designcentering. The mechanism may determine yield as v_(t) centers of designare moved around. This may enable identifying optimal design centers.For instance, the mechanism of the illustrative embodiments may be partof an adaptive search scheme (or hybrid), which is good to guidegradient, to provide initial solution, etc. True sampling could beperformed to certify the yield determined using the importance samplingreuse. In another example embodiment, the mechanism of the illustrativeembodiments may be used to determine yield for negative biasedtemperature instability (NBTI) or positive biased temperatureinstability (PBTI).

FIG. 15 is a graph illustrating results for an example static randomaccess memory in accordance with an illustrative embodiment. As can beseen, the writability and stability for importance sampling reuse are agood approximation for the true estimate. The estimated bounds are largeenough for manufacturing variability.

As will be appreciated by one skilled in the art, the present inventionmay be embodied as a system, method, or computer program product.Accordingly, aspects of the present invention may take the form of anentirely hardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.” Furthermore,aspects of the present invention may take the form of a computer programproduct embodied in any one or more computer readable medium(s) havingcomputer usable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablemedium would include the following: an electrical connection having oneor more wires, a portable computer diskette, a hard disk, a randomaccess memory (RAM), a read-only memory (ROM), an erasable programmableread-only memory (EPROM or Flash memory), an optical fiber, a portablecompact disc read-only memory (CDROM), an optical storage device, amagnetic storage device, or any suitable combination of the foregoing.In the context of this document, a computer readable storage medium maybe any tangible medium that can contain or store a program for use by orin connection with an instruction execution system, apparatus, ordevice.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, in abaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Computer code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, radio frequency (RF), etc., or anysuitable combination thereof.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java™, Smalltalk™, C++, or the like, and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer, or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to the illustrativeembodiments of the invention. It will be understood that each block ofthe flowchart illustrations and/or block diagrams, and combinations ofblocks in the flowchart illustrations and/or block diagrams, can beimplemented by computer program instructions. These computer programinstructions may be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmabledata processing apparatus, create means for implementing thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions thatimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus, or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

FIG. 16 is a flowchart illustrating operation of a mechanism forstatistical design with importance sampling reuse in accordance with anillustrative embodiment. Operation begins, and the mechanism performsuniform sampling (block 1602). The mechanism finds a center of gravity(COG) for each metric (block 1604). Then, the mechanism finds importancesamples (block 1606). For each new origin, the mechanism finds asuitable projection (bock 1608) and recomputes new importance samplingratios (block 1610). Thereafter, operation ends.

In an alternative embodiment, in block 1610, the mechanism may project anew center of gravity with respect to the new origin. In anotherembodiment, the mechanism may perform a second stage of importancesampling given the same uniform sampling from block 1602.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The illustrative embodiments may be utilized in many different types ofdata processing environments including a distributed data processingenvironment, a single data processing device, or the like. In order toprovide a context for the description of the specific elements andfunctionality of the illustrative embodiments, FIG. 17 is providedhereafter as an example environment in which aspects of the illustrativeembodiments may be implemented. While the description of FIG. 17 willfocus primarily on a single data processing device implementation, thisis only an example and is not intended to state or imply any limitationwith regard to the features of the present invention. To the contrary,the illustrative embodiments are intended to include distributed dataprocessing environments and embodiments.

FIG. 17 is a block diagram of an example data processing system in whichaspects of the illustrative embodiments may be implemented. Dataprocessing system 1700 is an example of a computer in which computerusable code or instructions implementing the processes for illustrativeembodiments of the present invention may be located.

In the depicted example, data processing system 1700 employs a hubarchitecture including north bridge and memory controller hub (NB/MCH)1702 and south bridge and input/output (I/O) controller hub (SB/ICH)1704. Processing unit 1706, main memory 1708, and graphics processor1710 are connected to NB/MCH 1702. Graphics processor 1710 may beconnected to NB/MCH 1702 through an accelerated graphics port (AGP).

In the depicted example, local area network (LAN) adapter 1712 connectsto SB/ICH 1704. Audio adapter 1716, keyboard and mouse adapter 1720,modem 1722, read only memory (ROM) 1724, hard disk drive (HDD) 1726,CD-ROM drive 1730, universal serial bus (USB) ports and othercommunication ports 1732, and PCI/PCIe devices 1734 connect to SB/ICH1704 through bus 1738 and bus 1740. PCI/PCIe devices may include, forexample, Ethernet adapters, add-in cards, and PC cards for notebookcomputers. PCI uses a card bus controller, while PCIe does not. ROM 1724may be, for example, a flash basic input/output system (BIOS).

HDD 1726 and CD-ROM drive 1730 connect to SB/ICH 1704 through bus 1740.HDD 1726 and CD-ROM drive 1730 may use, for example, an integrated driveelectronics (IDE) or serial advanced technology attachment (SATA)interface. Super I/O (SIO) device 1736 may be connected to SB/ICH 1704.

An operating system runs on processing unit 1706. The operating systemcoordinates and provides control of various components within the dataprocessing system 1700 in FIG. 17. As a client, the operating system maybe a commercially available operating system such as Microsoft® Windows®XP (Microsoft and Windows are trademarks of Microsoft Corporation in theUnited States, other countries, or both). An object-oriented programmingsystem, such as the Java™ programming system, may run in conjunctionwith the operating system and provides calls to the operating systemfrom Java™ programs or applications executing on data processing system1700 (Java is a trademark of Sun Microsystems, Inc. in the UnitedStates, other countries, or both).

As a server, data processing system 1700 may be, for example, an IBM®eServer™ System p® computer system, running the Advanced InteractiveExecutive (AIX®) operating system or the LINUX® operating system(eServer, System p, and AIX are trademarks of International BusinessMachines Corporation in the United States, other countries, or bothwhile LINUX is a trademark of Linus Torvalds in the United States, othercountries, or both). Data processing system 1700 may be a symmetricmultiprocessor (SMP) system including a plurality of processors inprocessing unit 1706. Alternatively, a single processor system may beemployed.

Instructions for the operating system, the object-oriented programmingsystem, and applications or programs are located on storage devices,such as HDD 1726, and may be loaded into main memory 1708 for executionby processing unit 1706. The processes for illustrative embodiments ofthe present invention may be performed by processing unit 1706 usingcomputer usable program code, which may be located in a memory such as,for example, main memory 1708, ROM 1724, or in one or more peripheraldevices 1726 and 1730, for example.

A bus system, such as bus 1738 or bus 1740 as shown in FIG. 17, may becomprised of one or more buses. Of course, the bus system may beimplemented using any type of communication fabric or architecture thatprovides for a transfer of data between different components or devicesattached to the fabric or architecture. A communication unit, such asmodem 1722 or network adapter 1712 of FIG. 17, may include one or moredevices used to transmit and receive data. A memory may be, for example,main memory 1708, ROM 1724, or a cache such as found in NB/MCH 1702 inFIG. 17.

Those of ordinary skill in the art will appreciate that the hardware inFIG. 17 may vary depending on the implementation. Other internalhardware or peripheral devices, such as flash memory, equivalentnon-volatile memory, or optical disk drives and the like, may be used inaddition to or in place of the hardware depicted in FIG. 17. Also, theprocesses of the illustrative embodiments may be applied to amultiprocessor data processing system, other than the SMP systemmentioned previously, without departing from the spirit and scope of thepresent invention.

Moreover, the data processing system 1700 may take the form of any of anumber of different data processing systems including client computingdevices, server computing devices, a tablet computer, laptop computer,telephone or other communication device, a personal digital assistant(PDA), or the like. In some illustrative examples, data processingsystem 1700 may be a portable computing device which is configured withflash memory to provide non-volatile memory for storing operating systemfiles and/or user-generated data, for example. Essentially, dataprocessing system 1700 may be any known or later developed dataprocessing system without architectural limitation.

Thus, the illustrative embodiments provide a mechanism for reusingimportance sampling for efficient cell failure rate estimation ofprocess variations and other design considerations. First, the mechanismperforms a search across circuit parameters to determine failures withrespect to a set of performance variables. For a single failure region,the initial search may be a uniform sampling of the parameter space.Mixture importance sampling (MIS) efficiently may estimate the singlefailure region. The mechanism then finds a center of gravity for eachmetric and finds importance samples. Then, for each new origincorresponding to a process variation or other design consideration, themechanism finds a suitable projection and recomputes new importancesampling (IS) ratios.

As noted above, it should be appreciated that the illustrativeembodiments may take the form of an entirely hardware embodiment, anentirely software embodiment or an embodiment containing both hardwareand software elements. In one example embodiment, the mechanisms of theillustrative embodiments are implemented in software or program code,which includes but is not limited to firmware, resident software,microcode, etc.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers. Network adapters mayalso be coupled to the system to enable the data processing system tobecome coupled to other data processing systems or remote printers orstorage devices through intervening private or public networks. Modems,cable modems and Ethernet cards are just a few of the currentlyavailable types of network adapters.

The description of the present invention has been presented for purposesof illustration and description, and is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Theembodiment was chosen and described in order to best explain theprinciples of the invention, the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A method, in a data processing system, fordetermining failure rate of a device using importance sampling reuse,the method comprising: performing, by the data processing system, auniform sampling over a random sample space for a metric for the devicewith respect to an origin to form a set of samples, wherein the set ofsamples comprises one or more failing samples; determining, by the dataprocessing system, a center of gravity of the one or more failingsamples with respect to the origin; determining, by the data processingsystem, importance samples based on the center of gravity of the one ormore failing samples; selecting a new origin; recomputing, by the dataprocessing system, new importance sampling weight ratios for the neworigin; and determining, by the data processing system, a failure ratefor the device based on the new importance sampling weight ratios forthe new origin.
 2. The method of claim 1, wherein recomputing newimportance sampling weight ratios for the new origin comprises: findinga projected origin; and recomputing new importance sampling weightratios with respect to the projected origin.
 3. The method of claim 2,wherein finding the projected origin comprises: determining a linepassing through the origin and the center of gravity of the one or morefailing samples; and projecting the new origin onto the line passingthrough the origin and the center of gravity of the one or more failingsamples.
 4. The method of claim 1, wherein recomputing new importancesampling weight ratios for the new origin comprises: finding a set ofprojected samples with respect to the new origin; and recomputing newimportance sampling ratios based on the projected samples.
 5. The methodof claim 4, wherein finding the set of projected samples comprises:determining a line passing through the origin and the center of gravityof the one or more failing samples; and move the set of samples in adirection orthogonal to the line passing through the origin and thecenter of gravity of the one or more failing samples.
 6. The method ofclaim 1, wherein recomputing new importance sampling weight ratios forthe new origin comprises computing a weight function, wherein the weightfunction is as follows:${w(x)} = {\Pi \frac{\sigma}{\sigma_{np}}{{\exp \left( {{- 0.5}\left( \frac{x - x_{np}}{\sigma_{np}} \right)^{2}} \right)}/{\exp \left( {{- 0.5}\left( \frac{x - x_{COG}}{\sigma} \right)^{2}} \right)}}}$where x is process variation variable of the device, x_(np) is a newpoint of a projected origin for the process variation variable x,x_(COG) is the center of gravity of the one or more failing samples, σis the standard deviation of x, and σ_(np) is the standard deviationassociated with the new point of projected origin.
 7. The method ofclaim 1, further comprising: repeating selecting a new origin,recomputing new importance sampling weight ratios for the new origin,and determining a failure rate for the device based on the newimportance sampling weight ratios for the new origin for a set ofprocess variations.
 8. The method of claim 1, wherein recomputing newimportance sampling weight ratios for the new origin comprises:determining importance samples based on the center of gravity of the oneor more failing samples and the new origin.
 9. A computer programproduct comprising a computer readable storage medium having a computerreadable program stored therein, wherein the computer readable program,when executed on a computing device, causes the computing device to:perform a uniform sampling over a random sample space for a metric forthe device with respect to an origin to form a set of samples, whereinthe set of samples comprises one or more failing samples; determine acenter of gravity of the one or more failing samples with respect to theorigin; determine importance samples based on the center of gravity ofthe one or more failing samples; recompute new importance samplingweight ratios for a selected new origin; and determine a failure ratefor the device based on the new importance sampling weight ratios forthe new origin.
 10. The computer program product of claim 9, whereinrecomputing new importance sampling weight ratios for the new origincomprises: finding a projected origin; and recomputing new importancesampling weight ratios with respect to the projected origin.
 11. Thecomputer program product of claim 10, wherein finding the projectedorigin comprises: determining a line passing through the origin and thecenter of gravity of the one or more failing samples; and projecting thenew origin onto the line passing though the origin and the center ofgravity of the one or more failing samples.
 12. The computer programproduct of claim 9, wherein recomputing new importance sampling weightratios for the new origin comprises: finding a set of projected sampleswith respect to the new origin; and recomputing new importance samplingratios based on the projected samples.
 13. The computer program productof claim 12, wherein finding the set of projected samples comprises:determining a line passing through the origin and the center of gravityof the one or more failing samples; and move the set of samples in adirection orthogonal to the line passing through the origin and thecenter of gravity of the one or more failing samples.
 14. The computerprogram product of claim 9, wherein recomputing new importance samplingweight ratios for the new origin comprises computing a weight function,wherein the weight function is as follows:${w(x)} = {\Pi \frac{\sigma}{\sigma_{np}}{{\exp \left( {{- 0.5}\left( \frac{x - x_{np}}{\sigma_{np}} \right)^{2}} \right)}/{\exp \left( {{- 0.5}\left( \frac{x - x_{COG}}{\sigma} \right)^{2}} \right)}}}$where x is process variation variable of the device, x_(np) is a newpoint of a projected origin for the process variation variable x,x_(COG) is the center of gravity of the one or more failing samples, σis the standard deviation of x, and σ_(np) is the standard deviationassociated with the new point of projected origin.
 15. The computerprogram product of claim 9, wherein the computer readable programfurther causes the computing device to: repeat selecting a new origin,recomputing new importance sampling weight ratios for the new origin,and determining a failure rate for the device based on the newimportance sampling weight ratios for the new origin for a set ofprocess variations.
 16. The computer program product of claim 9, whereinrecomputing new importance sampling weight ratios for the new origincomprises: determining importance samples based on the center of gravityof the one or more failing samples and the new origin.
 17. The computerprogram product of claim 9, wherein the computer readable program isstored in a computer readable storage medium in a data processing systemand wherein the computer readable program was downloaded over a networkfrom a remote data processing system.
 18. The computer program productof claim 9, wherein the computer readable program is stored in acomputer readable storage medium in a server data processing system andwherein the computer readable program is downloaded over a network to aremote data processing system for use in a computer readable storagemedium with the remote system.
 19. An apparatus, comprising: aprocessor; and a memory coupled to the processor, wherein the memorycomprises instructions which, when executed by the processor, cause theprocessor to: perform a uniform sampling over a random sample space fora metric for the device with respect to an origin to form a set ofsamples, wherein the set of samples comprises one or more failingsamples; determine a center of gravity of the one or more failingsamples with respect to the origin; determine importance samples basedon the center of gravity of the one or more failing samples; recomputenew importance sampling weight ratios for a selected new origin; anddetermine a failure rate for the device based on the new importancesampling weight ratios for the new origin.
 20. The apparatus of claim19, wherein recomputing new importance sampling weight ratios for thenew origin comprises: finding a projected origin; and recomputing newimportance sampling weight ratios with respect to the projected origin.21. The apparatus of claim 20, wherein finding the projected origincomprises: determining a line passing through the origin and the centerof gravity of the one or more failing samples; and projecting the neworigin onto the line passing through the origin and the center ofgravity of the one or more failing samples.
 22. The apparatus of claim19, wherein recomputing new importance sampling weight ratios for thenew origin comprises: finding a set of projected samples with respect tothe new origin; and recomputing new importance sampling ratios based onthe projected samples.
 23. The apparatus of claim 22, wherein findingthe set of projected samples comprises: determining a line passingthrough the origin and the center of gravity of the one or more failingsamples; and move the set of samples in a direction orthogonal to theline passing through the origin and the center of gravity of the one ormore failing samples.
 24. The apparatus of claim 19, wherein recomputingnew importance sampling weight ratios for the new origin comprisescomputing a weight function, wherein the weight function is as follows:${w(x)} = {\Pi \frac{\sigma}{\sigma_{np}}{{\exp \left( {{- 0.5}\left( \frac{x - x_{np}}{\sigma_{np}} \right)^{2}} \right)}/{\exp \left( {{- 0.5}\left( \frac{x - x_{COG}}{\sigma} \right)^{2}} \right)}}}$where x is process variation variable of the device, x_(np) is a newpoint of a projected origin for the process variation variable x,x_(COG) is the center of gravity of the one or more failing samples, σis the standard deviation of x, and σ_(np) is the standard deviationassociated with the new point of projected origin.
 25. The apparatus ofclaim 19, wherein the instructions further cause the processor to:repeat selecting a new origin, recomputing new importance samplingweight ratios for the new origin, and determining a failure rate for thedevice based on the new importance sampling weight ratios for the neworigin for a set of process variations.